An operating system is a program that is used to manage other programs (i.e., application programs) in a computer system. In a typical computer system, the operating system is initially loaded into the computer by a boot program. Once loaded, the operating system can perform a number of services for the application programs. Such services include determining the order in which certain applications can run, managing the sharing of resources (e.g., memory) between the applications, and managing input and output to and from hardware devices, such as disk drives. The application programs make use of the operating system by requesting services, for example, through the use of an application programming interface (API). A user of the computer system can also interact directly with the operating system, for example, through the use of a graphical user interface (GUI).
With respect to managing input and output between the application programs and one or more hardware devices, each type of operating system is typically closely related to and may be designed to work with a specific file system that manages the data on the disk drives. Some examples of operating systems include Unix, Linux (a variant of Unix) and Windows.
A file system typically specifies a convention for naming files, including, for example, the maximum number of characters in a file name, the type of characters that can be used, the format of file extensions that are permitted, etc. The file system also specifies the algorithmic or logical locations where a file can be placed. Windows and Unix-based operating systems typically employ file systems that use a hierarchical or tree-like structure wherein a file is placed in a directory or subdirectory located at a particular position in the hierarchical structure.
Depending on the addressing structure used, a file system can possess two different but related constraints: a limitation on the maximum size of an individual file, and a limitation on the maximum size of the file system itself.
The size of an individual file may be physically limited by the number of bits used in describing an address space of the file. For example, some versions of Linux, which were designed for use with a hardware architecture of 32 bits, use a four byte integer to address the contents of a file. Thus, the maximum size of a file is limited to 231  bytes minus some number of bytes, i.e., about 2 gigabytes.
The size of the file system itself is also limited. While the address space of a file system is typically represented by all or part of an eight byte integer, the maximum size of the file system is usually set to a predetermined limit. Limiting the maximum size of the file system provides a number of advantages. For example, the computer system may require less memory and may be able to locate files faster than if the file system were larger. On older Linux systems, for example, the maximum size of the file system was set at one terabyte. That is, regardless of the size of a physical disk, the disk must be divided into a plurality of partitions, each of which is less than or equal to the maximum allowable size of the file system.
In many applications, particularly seismic applications, a maximum file size of, for example, 2 gigabytes can be very restrictive. Seismic work typically involves the processing of large volumes of seismic data. These volumes of data often span hundreds of magnetic tapes, and can be several hundred gigabytes in size. Typically, as seismic data tapes are entered into a system, the contents of several tapes are copied to multiple files in one directory or data storage area. Then, when that data storage area becomes full, subsequent tapes are copied to many other data storage areas, which can be scattered around the computer system. Because the maximum size of the file system may be limited, for example, to 1 terabyte, one data storage area may not have sufficient free space to hold all of the incoming data. Thus, the user is required to manage the data by recording the locations (in the various data storage areas) of each part of the data. Accordingly, a need exists for a method for creating a virtual storage volume with a file size independent of a file size limitation imposed by the file system used by a computer system.